/**
 * @Description: 通用方法
 * @Author 卞鹏飞 <228443632@qq.com>
 * @create 2023/8/6 23:35
 */
export function getNearlyTime() {
    // 获取当前时间
    const currentTime = new Date();

    // 获取当前小时
    const currentHour = currentTime.getHours();

    // 计算当前时间之前的最近的 2 个整点时间
    const eightPreviousHours = [];
    for (let i = 0; i <= 2; i ++) {
        const previousHour = (currentHour - i + 24) % 24; // 处理跨天的情况
        const previousTime = new Date(currentTime);
        previousTime.setHours(previousHour, 0, 0, 0); // 将分钟、秒、毫秒设置为0
        eightPreviousHours.push(previousTime);
    }

    // 获取上一个整点的 Unix 时间戳（秒）
    // 时间多加一分钟获取多一条数据
    return [Math.floor((eightPreviousHours[0].getTime() + 60 * 1000) / 1000), Math.floor(eightPreviousHours[2].getTime() / 1000)]
}

/**
 * 获取x轴数据
 * @returns {*[]}
 */
export function getXAxis() {
    // 获取当前时间
    const currentTime = new Date();

    // 获取当前分钟和小时
    const currentMinute = currentTime.getMinutes();
    const currentHour = currentTime.getHours();

    // 计算离当前时间最近的前一个整点
    const previousHour = currentMinute === 0 ? currentHour - 1 : currentHour;
    const nearestPreviousTime = new Date(currentTime);
    nearestPreviousTime.setHours(previousHour, 0, 0, 0);

    // 计算在离当前时间最近的前一个整点之前 8 小时的整点之间的每一分钟组成的数组
    const minutesArray = [];
    for (let i = 0; i < 2 * 60 + 1; i ++) {
        const previousTime = new Date(nearestPreviousTime);
        previousTime.setMinutes(nearestPreviousTime.getMinutes() - i);
        minutesArray.push(previousTime);
    }

    // 输出每一分钟的时分秒表示
    return minutesArray.map((time) => {
        const hours = time.getHours().toString().padStart(2, '0');
        const minutes = time.getMinutes().toString().padStart(2, '0');
        return `${ hours }:${ minutes }`
    }).reverse()
}
